package main

import "fmt"
/**变量的认识与使用*/ 

// 全局变量1
// var n1 = 100
// var n2 = 200
// var name = "姓名"

// 全局变量2
// var(
// 	n1 = 1
// 	n2 = 2
// 	name = "3333"
// )


// 变量声明赋值及使用
func main()  {
	// 第一种形式 指定类型声明后不赋值使用默认值
	//var name string
	//name = "lishi"
	//var name string = "zhangsan"
	//fmt.Println("我的名字叫", name)
	// 第二中形式 根据值自行判断变量类型
	//var num = 12.34
	//fmt.Println(num)

	// 第三种形式 省略 关键字 var
	//sex := "男"
	//fmt.Println("性别=",sex)

	//第四种 一次声明多个变量1
		// 类型一致
	//var n1,n2,n3 int
	//fmt.Println("n1=",n1, "n2=",n2,"n3=",n3)
		// 类型不一致
	// var n4, name2, n5  = 100, "王五", 200
	// fmt.Println("n4=",n4, "name=",name2, "n6=",n5)

	// 有一次声明多变量，也可以使用类型推导
	// n7, n8, name3 := 777, 888, "赵六"
	// fmt.Println("n7=",n7, "n8=",n8, "name3=",name3)

	//第五种 全局变量 方法外 看顶部
	// fmt.Println("n7=",n1, "n8=",n2, "name3=",name)

	//第六种 同一区域数值可以在同一类型范围内不断变化
	// var i int = 10
	// i = 20
	// i = 30
	// fmt.Println("i = ",i)
	
	// // // i = 1.2 // x 错误示范 数据类型不一致

	//第七种 在同一个区域内不能重名
	// var i = 8989

	// 总结 
		// 1. 变量三要素 变量 = 变量名 + 变量值 + 数据类型
		// 2. 先声明 后使用
		// 3. 声明后必须使用，不使用会报错  .\variable.go:63:6: i declared but not used  go:63:6:我声明了但没有使用

	var i int = 123

	var j int = 456

	fmt.Println("j = ", j)

}